NEXTSTEP for Intel Processors

Title: Large IDE Drive Problems with NEXTSTEP 3.2
Entry Number: 1650
Last Updated: <<Date July 10 1995>>

Overview
The NEXTSTEP 3.2 IDE driver uses your computer's BIOS to retrieve IDE drive geometry.  Because of this, there is a problem that may occur when installing NEXTSTEP 3.2 on drives larger than 504Mb.

Problem
Your motherboard's BIOS may report translated IDE drive geometry that confuses the NEXTSTEP 3.2 IDE driver and causes a kernel panic.  Most BIOSes will fake the actual geometry for disks that exceed the imposed limitations by performing a translation.  As an example, if the disk is actually 2048 cylinders, 16 heads, and 63 sectors per track, the BIOS may translate this to 1024 cylinders, 32 heads, and 63 sectors per track.

The geometry limitation of 1024 cylinders, 16 heads, and 63 sectors per track stems from a combination of both the ATA specification and your BIOS's limits.  The IDE limitations are set in the original ATA specification (see http://www.symbios.com/ftp/pub/standards/io/ata/ata-r4c.txt) .  BIOS limits come from the INT 13 read/write calls that combine a 10 bit cylinder value with a 6 bit sector value into a 16 bit register.  The following table demonstrates how each contributes to the limitation.
                           BIOS   IDE     Limitation 
  Maximum Cylinders        1024   65536   1024  
  Maximum Heads            255    16      16    
  Maximum Sectors/Track    63     255     63    
  Maximum Capacity         7.84GB 127.5GB 504MB 

If your drive exceeds this limit and the BIOS performs a translation, you may see messages similar to the following during the first phase of installation:

kernel panic
/private/tmp/mnta: bad dir in0 18435 at offset 0: mangled entry
mode = 077430, inum = 18437, fs = /private/tmp/mnta 
panic: (cpu0) ialloc: dupalloc
panic: next mach 3.2: <date>; root(rcbuilder): mk-149.30.15.obj~ 2/rc_i386/release_I386
kernel panic exception (6,3,1)
waiting for remote debugger connection

Solution
Most drives have flexible configurations and permit of a range of cylinders, heads, and sectors from the system setup utility.  You will have to modify these parameters so that they do not exceed the limits imposed by the BIOS and those outlined in the ATA specification.  The resulting maximum capacity of the drive's geometry should not exceed any one of the following parameters:

1024 cylinders x 16 heads x 63 sectors/track x 512 bytes/sector
Yielding a maximum of  528 482 304 bytes (504Mb)

Other drives will have jumper switches which must be set to break the drive into two separate drives, effectively creating a primary and secondary disk from a single IDE drive.

If your large drive does not allow for this configuration, it may be unable to be used with NEXTSTEP.  This case is rare, and you should contact the supplier or manufacturer of the drive for assistance.

Caution
In addition to the standard IDE driver, NEXTSTEP 3.3 includes a revised IDE driver that resolves the geometry problem.  This updated driver asks the disk for its geometry instead of obtaining it from the BIOS.  If you are currently using the NEXTSTEP 3.2 IDE driver and will be upgrading to NEXTSTEP 3.3 (or later), you may use the revised IDE driver but you will have to both reset the BIOS settings and reinitialize the drive (reinstall all operating systems).  However, you may continue to use the standard IDE driver with no difference in operation.

See Also
1933_EIDE_and_ATAPI_CDROM_Support_in_NEXTSTEP_3.3